#include<stdio.h>
#include<unistd.h>
#include<signal.h>
#include<sys/wait.h>
#include<stdlib.h>

void sigcallback(int sig){
  //打印这句话说明子进程退出
  printf("recv sig num is %d\n",sig);
  
  //非阻塞，上面子进程已经退出了
  int status;
  wait(&status);

}

int main(){
  pid_t pid=fork();
  if(pid<0){
    perror("fork");
    return 0;
  }else if(pid==0){
    //child
    sleep(5);
    exit(1);
  }else{
    //father
    //不需要阻塞，也不需要循环
    signal(SIGCHLD,sigcallback);

    while(1)
    {
      printf("i am father process\n");
    }
  }
  return 0;
}
